package com.katze.boot.file.entity;

import lombok.Data;

import java.io.File;
import java.io.Serial;
import java.io.Serializable;

/**
 * 文件传输实体类
 */
@Data
public class FileTransfer  implements Serializable {
    @Serial
    private static final long serialVersionUID = -5547258483575826864L;

    /**
     * 文件MD5，唯一标识
     */
    private String id;

    /**
     * 拦截器名称（用于多个拦截器场景）
     */
    private String service;

    /**
     * 文件来源
     */
    private String from;

    /**
     * 目标标识
     */
    private String target;

    /**
     * 上传者
     */
    private String owner;

    /**
     * 文件名
     */
    private String name;

    /**
     * 文件大小
     */
    private Long size;

    /**
     * 文件数据
     */
    private byte[] data;

    /**
     * 本地相对路径
     */
    private String relativePath;

    /**
     * 文件块下标
     */
    private int index = -1;

    /**
     * 扩展参数1
     */
    private String p1;

    /**
     * 扩展参数2
     */
    private String p2;

    /**
     * 扩展参数3
     */
    private String p3;

    /**
     * 临时文件/目录路径（由拦截器定义）
     */
    private transient File temp;

    public FileTransfer temp(File temp) {
        this.temp = temp;
        return this;
    }
}
